/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.DAO;


import java.math.BigDecimal;
import java.util.List;
import javax.ejb.Local;
import suministros.ejb30.TO.AlmacenTO;
import suministros.ejb30.TO.AnoTO;
import suministros.ejb30.TO.CentroCostoTO;
import suministros.ejb30.TO.CodPresupuestalTO;
import suministros.ejb30.TO.CodigosInversionTO;
import suministros.ejb30.TO.CuentaContableTO;
import suministros.ejb30.TO.DetalleOrdenTO;
import suministros.ejb30.TO.DetallePedidoSuministroTO;
import suministros.ejb30.TO.FlujoPedidoTO;
import suministros.ejb30.TO.LocalidadTO;
import suministros.ejb30.TO.MesTO;
import suministros.ejb30.TO.NecesidadesSumiDetalleTO;
import suministros.ejb30.TO.NecesidadesSumiTO;
import suministros.ejb30.TO.PedidoTO;
import suministros.ejb30.TO.ProyectoTO;
import suministros.ejb30.TO.ReservaSuministroTO;
import suministros.ejb30.TO.SubAlmacenTO;
import suministros.ejb30.TO.SuministroStockTO;
import suministros.ejb30.TO.SuministroTO;
import suministros.ejb30.TO.TipoTO;
import suministros.ejb30.TO.UnidadOrganizativaTO;
import suministros.ejb30.TO.ZonaTO;
import suministros.ejb30.entity.DetallePedidoSuministroPK;
import suministros.ejb30.entity.Parametros;
import suministros.ejb30.entity.Pedido;
import suministros.ejb30.entity.Tipo;

/**
 *
 * @author Renato
 */
@Local
public interface SumiGestionPedidoDAOLocal {
    public  List<ZonaTO> getListaZonas()
    throws Exception;

  public  List<LocalidadTO> getListaLocalidadesZona(String paramString)
    throws Exception;

  public  List<LocalidadTO> getListaLocalidades()
    throws Exception;

  public  List<UnidadOrganizativaTO> getListaUnidOrganizativas()
    throws Exception;

  public  List<CentroCostoTO> getListaCentroCostos()
    throws Exception;

  public  List<CodPresupuestalTO> getListaCodPresupuestal()
    throws Exception;

  public  List<CuentaContableTO> getListaCtaCbles()
    throws Exception;

  public  List<CodigosInversionTO> getListaCodigoInversion()
    throws Exception;

  public  List<TipoTO> getListaTipos()
    throws Exception;

  public  TipoTO getTipoCampoCodigo(String paramString1, String paramString2)
    throws Exception;

  public  String getIdPedido(Pedido paramPedido)
    throws Exception;

  public  Parametros getParametroporId(String paramString)
    throws Exception;

  public  List<Parametros> getListaParametros()
    throws Exception;

  public  List<SuministroTO> getListaSuministros()
    throws Exception;

  public  List<Parametros> getListaParametrosLike(String paramString)
    throws Exception;

  public  List<PedidoTO> getPedidosConsulta(String paramString1, String paramString2, String paramString3, String paramString4, String empresa)
    throws Exception;

  public  List<DetallePedidoSuministroTO> getListaDetallePedidoSuministro(String paramString)
    throws Exception;

  public  List<AnoTO> getListaAnos()
    throws Exception;

  public  List<MesTO> getListaMes()
    throws Exception;

  public  List eliminarPedido(String usuario, String mac, String paramString)
    throws Exception;

    public List<ProyectoTO> getListaProyectos() throws Exception;

    List<NecesidadesSumiTO> getListaNecesidadesOperativas(String centro_costo, String ano,String empresa) throws Exception;

    List<NecesidadesSumiTO> getListaNecesidadesInversion(String cod_proy, String ano,String empresa) throws Exception;

    List<NecesidadesSumiDetalleTO> getListaDetalleNecesidadesRequerimientoOperativo(String centro_costo, String an,String empresa) throws Exception;
    public List<NecesidadesSumiDetalleTO> getListaDetalleNecesidadesRequerimientoInversion(String cod_proy, String ano,String empresa) throws Exception;

    public BigDecimal obtenerTotalDetalleRequerimiento(Long id_necesidad) throws Exception ;

    public  List<PedidoTO> getPedidosAll(String empresa)
    throws Exception;

   public abstract List<DetalleOrdenTO> getListaDetallePedidoSuministroOrden(String cod_pedido) throws Exception;

    List<AlmacenTO> listaAlmacenEnZona(String cod_zona) throws Exception;

    

    List<SubAlmacenTO> listaSubAlmacenEnAlmacen(String cod_almacen) throws Exception;

    List<PedidoTO> getPedidosPorTipoOrden(List<ZonaTO> zonas_usuario, String id_empresa) throws Exception;

    List<DetallePedidoSuministroTO> getListaDetallePedidosAll() throws Exception;

    List<DetallePedidoSuministroTO> getDetallePedidosParaOrden(List<ZonaTO> zonas_usuario, String id_empresa) throws Exception;

    List<DetalleOrdenTO> getListaDetallePedidoSuministroOrden(DetallePedidoSuministroPK pk_detalle_sumi) throws Exception;

    DetallePedidoSuministroTO getDetallePedidoSuministro(String cod_pedido, String cod_sumi) throws Exception;

    Tipo getListaTipoSuministroPorIdSuministro(String id_tipo) throws Exception;

    List<PedidoTO> getListaPedidosNoAtendidos(String cod_zona, String id_empresa) throws Exception;

     public boolean rechazarPedido(String cod_pedido, List<DetallePedidoSuministroTO> detalle) throws Exception;

    public boolean aceptarPedido(String cod_pedido, List<DetallePedidoSuministroTO> detalle) throws Exception;

    List<PedidoTO> getPedidosConsultaInversion(String cod_proyecto, String zona, String ano, String mes) throws Exception;

    public java.util.List<suministros.ejb30.TO.NecesidadesSumiTO> getListaNecesidadesOperativasAp(java.lang.String centro_costo, java.lang.String ano,java.lang.String empresa, String zona) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.NecesidadesSumiTO> getListaNecesidadesInversionAp(java.lang.String cod_proy, java.lang.String ano,java.lang.String empresa) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.NecesidadesSumiTO> getListaNecesidadesOperativasMod(java.lang.String centro_costo, java.lang.String ano,java.lang.String empresa) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.NecesidadesSumiTO> getListaNecesidadesInversionMod(java.lang.String cod_proy, java.lang.String ano,java.lang.String empresa) throws java.lang.Exception;

    List<SuministroStockTO> getStockSuministro(String id_suministro,String empresa) throws Exception;

    public java.util.List<suministros.ejb30.TO.PedidoTO> getPedidosPorTipoOrdenServicio(java.util.List<suministros.ejb30.TO.ZonaTO> zonas_usuario) throws java.lang.Exception;

    BigDecimal verificarDisponibilidadSuministro(String codigo, boolean es_inversion,String loca,String ano,String mes,String id_sumi, String empresa) throws Exception;

    public suministros.ejb30.TO.SuministroTO getSuministroEmpresa(java.lang.String codigo, java.lang.String empresa) throws java.lang.Exception;

    public suministros.ejb30.TO.StockAlmacenTO getStockSuministroUbicacion(java.lang.String codigo, java.lang.String subalmacen, java.lang.String empresa) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.StockAlmacenTO> getStockConsultar(java.lang.String suministro, java.lang.String subalmacen, java.lang.String empresa, int tipo);

    List<FlujoPedidoTO> getFlujoPedido(String cod_pedido) throws Exception;

    public java.util.List<suministros.ejb30.TO.SuministroTO> getDatosSuministroEmpresaRequeridos(java.lang.String empresa, String zona) throws java.lang.Exception;

    public java.lang.Boolean guardarPrecioRequerrimientos(java.util.List<suministros.ejb30.TO.SuministroTO> listasuministro) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.ReservaSuministroTO> getReservasSuministros(java.lang.String id_empresa) throws java.lang.Exception;

    public java.lang.Boolean verificarFechasAprobarRequerrimientos() throws java.lang.Exception;

    public java.lang.Boolean verificarFechasHacerRequerrimientos() throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.UnidadOrganizativaTO> getListaUnidOrganizativasNecesidad(java.lang.String anio, java.lang.String cod_uni_depend) throws java.lang.Exception;

    public boolean aprobarRequermientosJefatura(java.lang.String anio, java.util.List<suministros.ejb30.TO.UnidadOrganizativaTO> unidades) throws java.lang.Exception;

    public java.lang.Boolean guardarPrecioRequerrimientosServicios(java.util.List<suministros.ejb30.TO.SuministroTO> listasuministro, java.lang.String ccosto) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.SuministroTO> getDatosServiciosEmpresaRequeridos(java.lang.String empresa, java.lang.String zona, java.lang.String ccosto) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.NecesidadesSumiTO> getListaNecesidadesOperativasModZona(java.lang.String centro_costo, java.lang.String ano, java.lang.String empresa, java.lang.String zona) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.UnidadOrganizativaTO> verificarAprobacionDependencias(java.lang.String unidad_organizativa) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.SuministroTO> getSuministroAdministrar(java.lang.String codigo) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.GrupoSuministrosTO> getListaGrupoSuministrosAdministrar(java.lang.String codigo) throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.GrupoSuministrosTO> getListaGrupoSuministros() throws java.lang.Exception;

    public java.util.List<suministros.ejb30.TO.GrupoSuministrosTO> getListaGrupoSuministrosPadre() throws java.lang.Exception;

    
}
